import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;

/**
 * Description: 多例类(以球场上的位置为例)
 * Designer: jack
 * Date: 2018/5/15
 * Version: 1.0.0
 */
public class Position {
    private static final Map<Integer, Position> POSITION_INFO;  //装场上位置信息的容器
    private String duty; //每个位置在场上有它对应的职责

    //先把5个位置分配出来（五人制足球在场上的五个位子和职责）
    static {
        Map<Integer, Position> map = new HashMap<>();
        map.put(1, new Position("把守球门！"));
        map.put(2, new Position("左路防守并协助进攻！"));
        map.put(3, new Position("右路防守并协助进攻！"));
        map.put(4, new Position("中场推进与进攻组织！"));
        map.put(5, new Position("进攻！"));
        POSITION_INFO = Collections.unmodifiableMap(map);
    }

    //构造函数需要把当前位置的职责写入
    private Position(String duty) {
        this.duty = duty;
    }

    //随机返回一个位置
    public static Position getInstance() {
        Random random = new Random();
        return POSITION_INFO.get(random.nextInt(POSITION_INFO.size()));//随机拉出一个位置
    }

    //返回指定位置
    public static Position getInstance(Integer code) {
        return POSITION_INFO.get(code);
    }

    //位置职责
    public String dutyInfo() {
        return duty;
    }
}

